home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2004 April / Gamestar_61_2004-04_dvdb.iso / DVDStar / Editace / hltp.exe / {app} / Applications / QuArK / quarkpy / mdlmenus.py < prev    next >
Text File  |  2004-01-05  |  4KB  |  149 lines

  1. """   QuArK  -  Quake Army Knife
  2.  
  3. Model editor pop-up menus.
  4. """
  5. #
  6. # Copyright (C) 1996-99 Armin Rigo
  7. # THIS FILE IS PROTECTED BY THE GNU GENERAL PUBLIC LICENCE
  8. # FOUND IN FILE "COPYING.TXT"
  9. #
  10.  
  11. #$Header: /cvsroot/quark/runtime/quarkpy/mdlmenus.py,v 1.4 2000/08/21 21:33:04 aiv Exp $
  12.  
  13.  
  14.  
  15. import quarkx
  16. from qdictionnary import Strings
  17. import qmenu
  18. from mdlutils import *
  19. import mdlcommands
  20. #import mapbtns
  21.  
  22.  
  23. EditMenuCmds = []
  24. EditMenuShortcuts = {}
  25.  
  26.  
  27. def BuildMenuBar(editor):
  28.     import mdlmgr
  29.     import mdlcommands
  30.     import mdltools
  31.     import mdloptions
  32.  
  33.     File1, sc1 = qmenu.DefaultFileMenu()
  34.  
  35.     if editor.layout is None:
  36.         l1 = []
  37.         lcls = None
  38.         lclick = None
  39.     else:
  40.         l1, sc2 = editor.layout.getlayoutmenu()
  41.         sc1.update(sc2)   # merge shortcuts
  42.         if len(l1):
  43.             l1.append(qmenu.sep)
  44.         lcls = editor.layout.__class__
  45.         lclick = editor.layout.layoutmenuclick
  46.     for l in mdlmgr.LayoutsList:
  47.         m = qmenu.item('%s layout' % l.shortname, editor.setlayoutclick)
  48.         m.state = (l is lcls) and qmenu.radiocheck
  49.         m.layout = l
  50.         l1.append(m)
  51.     Layout1 = qmenu.popup("&Layout", l1, lclick)
  52.  
  53.     Edit1, sc2 = qmenu.DefaultEditMenu(editor)
  54.     sc1.update(sc2)   # merge shortcuts
  55.     l1 = EditMenuCmds
  56.     if len(l1):
  57.         Edit1.items = Edit1.items + [qmenu.sep] + l1
  58.     sc1.update(EditMenuShortcuts)   # merge shortcuts
  59.  
  60.     Commands1, sc2 = mdlcommands.CommandsMenu()
  61.     sc1.update(sc2)   # merge shortcuts
  62.  
  63.     Tools1, sc2 = mdltools.ToolsMenu(editor, mdltools.toolbars)
  64.     sc1.update(sc2)   # merge shortcuts
  65.  
  66.     Options1, sc2 = mdloptions.OptionsMenu()
  67.     sc1.update(sc2)   # merge shortcuts
  68.  
  69.     return [File1, Layout1, Edit1, quarkx.toolboxmenu, Commands1, Tools1, Options1], sc1
  70.  
  71.  
  72.  
  73. def BackgroundMenu(editor, view=None, origin=None):
  74.     "Menu that appears when the user right-clicks on nothing."
  75.  
  76.     undo, redo = quarkx.undostate(editor.Root)
  77.     if undo is None:   # to undo
  78.         Undo1 = qmenu.item(Strings[113], None)
  79.         Undo1.state = qmenu.disabled
  80.     else:
  81.         Undo1 = qmenu.macroitem(Strings[44] % undo, "UNDO")
  82.     if redo is None:
  83.         extra = []
  84.     else:
  85.         extra = [qmenu.macroitem(Strings[45] % redo, "REDO")]
  86.     if origin is None:
  87.         paste1 = qmenu.item("Paste", editor.editcmdclick)
  88.     else:
  89.         paste1 = qmenu.item("Paste here", editor.editcmdclick)
  90.         paste1.origin = origin
  91.     paste1.cmd = "paste"
  92.     paste1.state = not quarkx.pasteobj() and qmenu.disabled
  93.     extra = extra + [qmenu.sep, paste1]
  94.     if view is not None:
  95.         def backbmp1click(m, view=view, form=editor.form):
  96.             import qbackbmp
  97.             qbackbmp.BackBmpDlg(form, view)
  98.         backbmp1 = qmenu.item("Background image...", backbmp1click)
  99.         extra = extra + [qmenu.sep] + TexModeMenu(editor, view) + [qmenu.sep, backbmp1]
  100.     return [Undo1] + extra
  101.  
  102.  
  103.  
  104. def set_mpp_page(btn):
  105.     "Switch to another page on the Multi-Pages Panel."
  106.  
  107.     editor = mapeditor(SS_MODEL)
  108.     if editor is None: return
  109.     editor.layout.mpp.viewpage(btn.page)
  110.  
  111.  
  112.  
  113. #
  114. # Entities pop-up menus.
  115. #
  116.  
  117. def MultiSelMenu(sellist, editor):
  118.     return BaseMenu(sellist, editor)
  119.  
  120.  
  121. def BaseMenu(sellist, editor):
  122.     "The base pop-up menu for a given list of objects."
  123.  
  124.     mult = len(sellist)>1 or (len(sellist)==1 and sellist[0].type==':g')
  125.     Force1 = qmenu.item(("&Force to grid", "&Force everything to grid")[mult],
  126.       editor.ForceEverythingToGrid)
  127.     Force1.state = not editor.gridstep and qmenu.disabled
  128.  
  129.     Cut1 = qmenu.item("&Cut", editor.editcmdclick)
  130.     Cut1.cmd = "cut"
  131.     Copy1 = qmenu.item("Cop&y", editor.editcmdclick)
  132.     Copy1.cmd = "copy"
  133.     Delete1 = qmenu.item("&Delete", editor.editcmdclick)
  134.     Delete1.cmd = "del"
  135.  
  136.     return [Force1, qmenu.sep, Cut1, Copy1, Delete1]
  137.  
  138. # ----------- REVISION HISTORY ------------
  139. #
  140. #
  141. #$Log: mdlmenus.py,v $
  142. #Revision 1.4  2000/08/21 21:33:04  aiv
  143. #Misc. Changes / bugfixes
  144. #
  145. #Revision 1.2  2000/06/02 16:00:22  alexander
  146. #added cvs headers
  147. #
  148. #
  149. #